package com.graduation.springbootinit.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.graduation.springbootinit.model.entity.ShopPart.Message;

import java.util.List;

public interface MessageService extends IService<Message> {
    /**
     * 发送消息
     * @param conversationId 对话ID
     * @param senderId 发送者ID
     * @param senderType 发送者类型（0-用户，1-商铺）
     * @param content 消息内容
     * @param type 消息类型
     * @return 消息实体
     */
    Message createMessage(Long conversationId, Long senderId, Integer senderType, String content, Integer type);
    
    /**
     * 获取对话历史消息
     * @param conversationId 对话ID
     * @param limit 限制条数
     * @param before 在此消息之前（消息ID）
     * @return 消息列表
     */
    List<Message> getHistoryMessages(Long conversationId, Integer limit, Long before);
    
    /**
     * 标记消息为已读
     * @param conversationId 对话ID
     * @param receiverType 接收者类型（0-用户，1-商铺）
     */
    void markMessagesAsRead(Long conversationId, Integer receiverType);

    /**
     * 发送消息并更新会话状态
     */
    default Message sendMessage(Long conversationId, Long senderId, Integer senderType, String content, Integer type) {
        return createMessage(conversationId, senderId, senderType, content, type);
    }
}